import com.github.anastaciocintra.escpos.EscPos;
import com.github.anastaciocintra.escpos.PrintModeStyle;
import com.github.anastaciocintra.output.PrinterOutputStream;

import com.github.anastaciocintra.escpos.barcode.QRCode;
import javax.print.PrintService;
import java.io.IOException;

public class CodeTableSample {

    public static void main(String[] args) throws IOException {

        // 获取指定名称的打印服务 请自行修改
        PrintService printService = PrinterOutputStream.getPrintServiceByName("K4");
        // 创建打印机输出流
        PrinterOutputStream printerOutputStream = new PrinterOutputStream(printService);
        // 创建EscPos对象
        EscPos escpos = new EscPos(printerOutputStream);

        // 定义要打印的中文字符串
        String chineseText = "你好，小和QQ496631085！\r\n  新年快乐2025,该示例是\r\n 易联云小票打印机K4连接USB打印";
        // 设置字符编码为GBK（根据打印机实际支持的编码调整）
        byte[] chineseBytes = chineseText.getBytes("GBK");
        // 打印中文字符串
        escpos.write(chineseBytes, 0, chineseBytes.length);
        escpos.feed(2);





        // 创建一个 QRCode 对象并设置相关属性
        QRCode qrCode = new QRCode();
        qrCode.setSize(5); // 设置二维码模块大小
        //该源代码来自https://github.com/anastaciocintra/escpos-coffee
        String qrCodeData = "https://he4966.cn"; // 二维码包含的数据
        byte[] qrCodeBytes = qrCode.getBytes(qrCodeData); // 获取二维码的字节数据
        // 打印二维码
        escpos.write(qrCodeBytes,0,qrCodeBytes.length);


        // 进纸并切纸
        escpos.feed(5).cut(EscPos.CutMode.FULL);
        // 关闭EscPos对象
        escpos.close();
    }
}